"""
setDaemon用法
"""
'''
setDaemon(True)：将线程声明为守护线程，必须在start()方法调用之前设置。这个方法基本和join是相反的。
当我们在程序运行中，执行一个主线程，如果主线程又创建一个子线程，主线程和子线程就分兵两路，分别运行，那么当主线程完成
想退出时，会检验子线程是否完成。如果子线程未完成，则主线程会等待子线程完成后再退出。但是有时候我们需要的是只要主线程
完成了，不管子线程是否完成，都要和主线程一起退出，这时就可以用setDaemon()方法。
'''

import threading
import time


def music():
    print('begin to listen music %s' % time.ctime())
    time.sleep(3)
    print('stop to listen music %s' % time.ctime())


def game():
    print('begin to play game %s' % time.ctime())
    time.sleep(5)
    print('stop to play game %s' % time.ctime())


l = []

t1 = threading.Thread(target=music)
t2 = threading.Thread(target=game)

l.append(t1)
l.append(t2)

if __name__ == '__main__':
    for i in l:
        i.setDaemon(True)  # 一定要在所有start()之前设置
    for t in l:
        t.start()
    print('ending...')
